Skip to content

Commit 48fe64a

Browse files
committed
Change SumoBot to deleted_user
1 parent 64a23aa commit 48fe64a

File tree

3 files changed

+64
-6
lines changed

3 files changed

+64
-6
lines changed

kitsune/messages/jinja2/messages/includes/macros.html

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@
1212

1313
{% macro name_link(user=None, name=None) -%}
1414
{% if user -%}
15-
<a rel="nofollow" href="{{ profile_url(user) }}">{% if name %}{{ name }}{% else %}{{ display_name(user) }}{% endif %}</a>
15+
{% if user.is_bot_user %}
16+
{{ _('deleted user') }}
17+
{% else %}
18+
<a rel="nofollow" href="{{ profile_url(user) }}">{% if name %}{{ name }}{% else %}{{ display_name(user) }}{% endif %}</a>
19+
{% endif %}
1620
{%- else -%}
1721
{{ name if name else _('None') }}
1822
{%- endif %}
@@ -42,7 +46,11 @@
4246
{{ avatar_link(message.sender, default_avatar) }}
4347
</div>
4448
<div class="user from">
49+
{% if message.sender.is_bot_user %}
50+
{{ _('deleted user') }}
51+
{% else %}
4552
{{ name_link(message.sender) }} {{ datetimeformat(message.created) }}
53+
{% endif %}
4654
</div>
4755
</div>
4856
</section>
@@ -55,9 +63,13 @@
5563
{% if message.recipients_count > 0 %}
5664
<p><strong>{{ _('To') }}:</strong>
5765
{% set comma = joiner(', ') %}
58-
{% for user in message.to.all() -%}
66+
{% for user in message.to_users -%}
5967
{{ comma() }}
68+
{% if user.is_bot_user %}
69+
{{ _('deleted user') }}
70+
{% else %}
6071
{{ name_link(user) }}
72+
{% endif %}
6173
{% else %}
6274
{{ name_link(message.recipient) }}
6375
{% endfor %}

kitsune/messages/jinja2/messages/outbox.html

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,13 @@ <h1 class="sumo-page-heading">{{ title }}</h1>
3838
<div class="email-cell sent">{{ datetimeformat(message.created) }}</div>
3939
<div class="email-cell to">
4040
{% for user in message.to.all()[:1] -%}
41-
<a rel="nofollow" href="{{ profile_url(user) }}">
41+
{% if user.is_bot_user %}
42+
{{ _('deleted user') }}
43+
{% else %}
44+
<a rel="nofollow" href="{{ profile_url(user) }}">
4245
{{ user.profile.display_name }}
43-
</a>
46+
</a>
47+
{% endif %}
4448
{%- if message.recipients_count > 1 -%}, ...{% endif %}
4549
{%- endfor %}
4650
</div>

kitsune/messages/views.py

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ def inbox(request):
2929

3030
messages = paginate(request, messages, per_page=MESSAGES_PER_PAGE, count=count)
3131

32+
# Add is_bot_user flag to each message's sender
33+
for message in messages.object_list:
34+
if message.sender:
35+
message.sender.is_bot_user = message.sender.username == settings.SUMO_BOT_USERNAME
36+
3237
return render(
3338
request,
3439
"messages/inbox.html",
@@ -42,25 +47,38 @@ def read(request, msgid):
4247
was_new = message.unread
4348
if was_new:
4449
message.update(read=True)
50+
if message.sender.username == settings.SUMO_BOT_USERNAME:
51+
message.sender.is_bot_user = True
52+
4553
initial = {"to": message.sender, "in_reply_to": message.pk}
4654
form = ReplyForm(initial=initial)
4755
response = render(
4856
request,
4957
"messages/read.html",
50-
{"message": message, "form": form, "default_avatar": settings.DEFAULT_AVATAR},
58+
{
59+
"message": message,
60+
"form": form,
61+
"default_avatar": settings.DEFAULT_AVATAR,
62+
},
5163
)
5264
return response
5365

5466

5567
@login_required
5668
def read_outbox(request, msgid):
5769
message = get_object_or_404(OutboxMessage, pk=msgid, sender=request.user)
70+
to_users = message.to.all()
71+
72+
# Add is_bot_user flag to each recipient
73+
for user in to_users:
74+
user.is_bot_user = user.username == settings.SUMO_BOT_USERNAME
75+
5876
return render(
5977
request,
6078
"messages/read-outbox.html",
6179
{
6280
"message": _add_recipients(message),
63-
"to_users": message.to.all(),
81+
"to_users": to_users,
6482
"to_groups": message.to_group.all(),
6583
},
6684
)
@@ -179,13 +197,37 @@ def preview_async(request):
179197

180198

181199
def _add_recipients(msg):
200+
"""Process and attach recipient information to a message object.
201+
202+
This helper function calculates recipient counts and assigns recipient-related
203+
attributes to the message object for both individual users and groups.
204+
205+
Args:
206+
msg: An OutboxMessage object to process.
207+
208+
Returns:
209+
The modified message object with the following attributes set:
210+
- recipients_count: Number of individual recipients
211+
- to_groups_count: Number of group recipients
212+
- recipient: The single recipient (if exactly one), else None
213+
- recipient.is_bot_user: Boolean indicating if recipient is SumoBot
214+
- to_groups: List of recipient groups with prefetched profiles
215+
216+
Note:
217+
The function assumes msg.to and msg.to_group are valid related fields
218+
on the message object.
219+
"""
182220
# Set the counts based on the lists
183221
msg.recipients_count = msg.to.all().count()
184222
msg.to_groups_count = msg.to_group.all().count()
185223

186224
# Assign the recipient based on the number of recipients
187225
msg.recipient = msg.to.all()[0] if msg.recipients_count == 1 else None
188226

227+
# Set is_bot_user flag only if there's a recipient with a username
228+
if msg.recipient and hasattr(msg.recipient, "username"):
229+
msg.recipient.is_bot_user = msg.recipient.username == settings.SUMO_BOT_USERNAME
230+
189231
# Assign the group(s) based on the number of groups
190232
msg.to_groups = list(msg.to_group.prefetch_related("profile"))
191233

0 commit comments

Comments
 (0)